/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modelos;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 *
 * @author juanjo
 */
public class Carrito {
    private HashMap productos;
    private int total;
    
    public Carrito(){
        this.productos=new HashMap<Integer,Producto>();
        this.total=0;
    }
    
    public HashMap getProductos(){
        return this.productos;
    }
    
    public void agregaProductoACarrito(Integer pid, Producto producto){
        productos.put(pid, producto);
        actualizaTotal();
    }
    
    public void sacaProductoDeCarrito(Integer pid){
        productos.remove(pid);
        actualizaTotal();
    }
    
    public Producto[] listaProductos(){
        Producto p;
        int cont = 0;
        Iterator it = productos.entrySet().iterator();
        if(productos.isEmpty()){
            return null;
        }
        while (it.hasNext()) {
            it.next();
            cont++;
        }
        Producto[] listaProductos = new Producto[cont];
        int pos = 0;
        it = productos.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry pares = (Map.Entry)it.next();
            p = (Producto) pares.getValue();
            listaProductos[pos++] = p;
        }
        return listaProductos;
    }
    
    public void actualizaTotal(){
        int acum=0;
        Producto p;
        Iterator it = productos.entrySet().iterator();
        if(productos.isEmpty()){
            total=acum;
            return;
        }
        
        
        while (it.hasNext()) {
            Map.Entry pares = (Map.Entry)it.next();
            p = (Producto) pares.getValue();
            acum+= p.getPrecio()*p.getCantidad();
        }
        
        total=acum;
    }
    
    public int getTotal(){
        return this.total;
    }
    
    public boolean vacio() {
        return this.productos.isEmpty();
    }
    
}
